Skip to content

feat: remove product config & clean up#897

Open
maltesander wants to merge 14 commits into
mainfrom
feat/smooth-operator/remove-product-config
Open

feat: remove product config & clean up#897
maltesander wants to merge 14 commits into
mainfrom
feat/smooth-operator/remove-product-config

Conversation

@maltesander
Copy link
Copy Markdown
Member

@maltesander maltesander commented Jun 1, 2026

Description

  • remove product config
  • move to config map builder step
  • clean up constants

Definition of Done Checklist

  • Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant
  • Please make sure all these things are done and tick the boxes

Author

  • Changes are OpenShift compatible
  • CRD changes approved
  • CRD documentation for all fields, following the style guide.
  • Helm chart can be installed and deployed operator works
  • Integration tests passed (for non trivial changes)
  • Changes need to be "offline" compatible
  • Links to generated (nightly) docs added
  • Release note snippet added

Reviewer

  • Code contains useful comments
  • Code contains useful logging statements
  • (Integration-)Test cases added
  • Documentation added or updated. Follows the style guide.
  • Changelog updated
  • Cargo.toml only contains references to git tags (not specific commits or branches)

Acceptance

  • Feature Tracker has been updated
  • Proper release label has been added
  • Links to generated (nightly) docs added
  • Release note snippet added
  • Add type/deprecation label & add to the deprecation schedule
  • Add type/experimental label & add to the experimental features tracker

@maltesander maltesander self-assigned this Jun 1, 2026
Comment thread Cargo.toml
# [patch."https://github.com/stackabletech/operator-rs.git"]
# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" }
[patch."https://github.com/stackabletech/operator-rs.git"]
stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "smooth-operator"}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: update to new op-rs release (?)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah but i think we need other operators implemented to check what we can move or have to adapt first. Otherwise well do release after release...

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, this is just a marker so we don't forget

Comment thread Cargo.toml Outdated
@maltesander maltesander marked this pull request as ready for review June 1, 2026 16:28
Comment thread deploy/config-spec/properties.yaml
Comment thread Cargo.toml
# [patch."https://github.com/stackabletech/operator-rs.git"]
# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" }
[patch."https://github.com/stackabletech/operator-rs.git"]
stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "smooth-operator"}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, this is just a marker so we don't forget

Comment thread rust/operator-binary/src/controller/build/properties/config_properties.rs Outdated
Comment thread rust/operator-binary/src/controller/validate.rs
Comment thread rust/operator-binary/src/controller/build/config_map.rs Outdated
Comment thread rust/operator-binary/src/controller/validate.rs
maltesander and others added 2 commits June 2, 2026 15:08
…operties.rs

Co-authored-by: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com>
Co-authored-by: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com>
@adwk67
Copy link
Copy Markdown
Member

adwk67 commented Jun 2, 2026

maltesander and others added 4 commits June 3, 2026 13:12
Replace the hand-rolled Java-properties escaper
(rust/operator-binary/src/controller/build/properties/writer.rs) with
stackable_operator::v2::config_file_writer (moved there via operator-rs
#1217 on the smooth-operator branch). A thin adapter in properties/mod.rs
maps trino's String-valued maps onto the writer's Option<String>-valued
interface; the kuttl-pinned escape behaviours stay covered by unit tests
against the shared writer.

Unlike the other operators this is not a pure relocation: the hand-rolled
escaper (introduced on this branch, never released) had unintentionally
diverged from the product-config writer it replaced. A differential test
showed 8 divergences, all unreachable from operator defaults (the kuttl
smoke snapshot's 157 property lines are unaffected):

- inner/trailing spaces in values: now escaped (read-back identical per the
  Java properties spec)
- tab/newline/CR in values: now escaped (the raw output was malformed)
- non-ASCII: now ISO-8859-1-spec behaviour again (error on Latin-1-range
  values, \uXXXX beyond) instead of raw UTF-8 pass-through

This restores the exact serialization behaviour of the released operator,
which renders via the identical product-config code.

The base dependency tag moves from stackable-operator-0.111.0 to 0.111.1,
matching the other operators; cargo only substitutes a [patch] whose package
version matches, and the smooth-operator branch carries 0.111.1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants